package com.appbee.cm.client.gin;

import javax.inject.Singleton;

import com.appbee.cm.client.startup.CMStartupLoader;
import com.appbee.cm.client.startup.impl.CMStartupLoaderImpl;
import com.appbee.cm.client.startup.impl.DataRequestProvider;
import com.appbee.cm.shared.dataservice.DataRequest;
import com.appbee.core.client.startup.links.IStartupDataLoader;
import com.appbee.user.client.startup.IUserStartupLoader;
import com.google.gwt.inject.client.AbstractGinModule;

public class CMDefaultGinModul extends AbstractGinModule
{

	@Override
	protected void configure()
	{
		install(new CMCoreGinModul());
		bind(DataRequest.class).toProvider(DataRequestProvider.class);
		bind(CMStartupLoaderImpl.class).in(Singleton.class);
		bind(IUserStartupLoader.class).to(CMStartupLoaderImpl.class)
				.in(Singleton.class);
		bind(CMStartupLoader.class).to(CMStartupLoaderImpl.class)
				.in(Singleton.class);
		bind(IStartupDataLoader.class).to(CMStartupLoaderImpl.class)
				.in(Singleton.class);
	}

}
